<?php
    @include_once("conn.php");

    // 1. 根据学员的姓名  进行模糊搜索 

    // limit m,n  
    // 第1页  [0,5]
    // 第2页  [5,5]
    // 第3页  [10,5]

    // 第pageIndex页   (pageIndex-1)*showNum  showNum;

    // 问题?
    // 1.  如果pageIndex 在正常范围 是可行的  ,但是超出临界值(0, maxPage)之后会出问题
    //  = >   对 pageIndex  范围限制  [1,maxPage]

    // maxPage  = 总数据 /每页显示多少条 => 向上取整
    // a.   总数据 => 详情见 如何获取总数据 1 2



    // 2   后端虽然有maxPage 但是前端不知道,无法限制页码临界值  
    //  =>  后端 将对应数据传递给前端  => 怎么传? (一个接口返回一条数据)  => 把多条数据整合到一条数据
    
    //    {
    //        maxPage:maxPage,
    //        list:[{},{},{},{}]
    //    }




    $key = $_GET["key"];
    $orderCol = $_GET["orderCol"]; // column 列名   id/chinese/math/english /total
    $orderType = $_GET["orderType"]; //排序类型 asc desc 
    $pageIndex = $_GET["pageIndex"];  // 分页的页码 
    $showNum = $_GET["showNum"];  // 每页显示多少条


    // $searchAll = "select *,chinese+math+english as total  from `grade` where name like '%$key%' order by $orderCol $orderType";
    // $resultAll = mysqli_query($conn,$searchAll);

    // 如何获取总数据
    // 1. 借助 sql  count(*) 
    // $searchAll = "select count(*) as count from `grade` where name like '%$key%' order by $orderCol $orderType";
    // $resultAll = mysqli_query($conn,$searchAll);

    // $item = mysqli_fetch_assoc($resultAll);

    // $count = $item["count"];
    // echo $count;

    // 2. 借助 结果对象  $resultAll  -> num_rows
    $searchAll = "select *,chinese+math+english as total  from `grade` where name like '%$key%' order by $orderCol $orderType";
    $resultAll = mysqli_query($conn,$searchAll);
    // print_r($resultAll);

    $count = $resultAll->num_rows;
    // echo $count;

    // 数据查询时  有可能出现搜索数据为0的情况 => $pageIndex>$maxPage  =>  $pageIndex= 0
    $maxPage = ceil($count/$showNum);

    // echo $maxPage;
    
    if($pageIndex>$maxPage){
        $pageIndex = $maxPage;
    }
    if($pageIndex<1){
        $pageIndex = 1;
    }
    // echo $pageIndex;

    $skipNum = ($pageIndex-1)*$showNum;

    $search = "select *,chinese+math+english as total  from `grade` where name like '%$key%' order by $orderCol $orderType limit $skipNum,$showNum";

    // echo $search;

    $result = mysqli_query($conn,$search);

    // print_r($result);  // 结果对象(object)   php对象取值  对象->属性名
    // echo $result->num_rows;

    $all = array();
    while($item = mysqli_fetch_assoc($result)){
        // $item["chinese"] =$item["chinese"]*1;
        array_push($all,$item);
    }

    $com = array();
    $com["count"] = $count;    //总数据
    $com["currentPage"] = $pageIndex*1; // 当前页
    $com["maxPage"] = $maxPage; // 最大页
    $com["list"] = $all;  // 对应页码的数据

    echo json_encode($com);



?>